package com.haiya.domain.aggregate.cargo;

import com.haiya.domain.aggregate.cargo.valueobject.EnterpriseSegment;

/**
 * 货物存储类(仓库: 持久化)
 * @author qiaoguoqiang
 */
public interface CargoRepository {
    /**
     * 货物预定详情
     * @param id
     * @return
     */
    Cargo find(String id);

    /**
     * 查询给定客户预定货物的数量
     * @param customerPhone
     * @return
     */
    int sizeByCustomer(String customerPhone);

    /**
     * 返回特定种类的货物数量: 水果、电脑
     * @param enterpriseSegment
     * @return
     */
    int sizeByEnterpriseSegment(EnterpriseSegment enterpriseSegment);

    /**
     * 保存或更新货物信息
     * @param cargo
     */
    void save(Cargo cargo);

    /**
     * 删除货物预定
     * @param id
     */
    void remove(String id);
}
